package com.quanyan.stadium.service;

import com.quanyan.common.exception.BizException;
import com.quanyan.stadium.entity.vo.PKEvent;
import com.quanyan.stadium.entity.vo.PKEventVo;
import com.quanyan.stadium.entity.vo.PKResultVo;

import java.util.List;

/**
 * Created by lei.w on 16/6/23.
 */
public interface PKEventService {

    /**
     * 创建pk
     *
     * @param pkEvent
     */
    PKEventVo createPKEvent(PKEvent pkEvent) throws BizException;

    /**
     * 查询用户PK列表
     *
     * @param uid
     * @param status
     * @return
     */
    List<PKEventVo> queryUserPKList(Integer uid, Integer status);

    /**
     * 查询用户创建并且没有结束PK列表
     *
     * @param id
     * @param status
     * @return
     */
    List<PKEventVo> queryUserCreatePKList(Integer id, Integer status, Integer type);

    /**
     * 查询用户接收并且没有结束PK列表
     *
     * @param id
     * @param status
     * @return
     */
    List<PKEventVo> queryUserReceivePKList(Integer id, Integer status, Integer type);

    /**
     * 查询用户最新创建的Pk
     * @param uid
     * @return
     */
    PKEventVo queryUserNewestCreatePK(Integer uid, Integer categoryId);

    /**
     * 查询PK信息根据id
     *
     * @param pkid
     * @return
     */
    PKEventVo getPKInfoById(Integer pkid);

    /**
     * 获取
     *
     * @param uid
     * @param pkid
     * @return
     */
    PKEventVo getPKInfoByIdAndUid(Integer uid, Integer pkid);

    /**
     *
     * @param reqPKEvent
     * @return
     */
    boolean updatePKStatus(PKEventVo reqPKEvent);

    /**
     * 录入PK结果
     *
     * @param pkResultVo
     */
    void entryPKResult(PKResultVo pkResultVo, PKEventVo pkEventVo) throws BizException;

    /**
     * PK结果确认
     *
     * @param pkResultVo
     * @param pkEventVo
     */
    void pkResultConfirm(PKResultVo pkResultVo, PKEventVo pkEventVo);
}
